home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2gem106.lzh / CRYSTAL1.06 / SRC / CRYSTAL / GRAFMGR.DEF < prev    next >
Encoding:
Modula Definition  |  1993-03-16  |  5.3 KB  |  187 lines

  1. DEFINITION MODULE GrafMgr;
  2.  
  3. (*
  4. AES Grafics Manager.
  5.  
  6. UK __DATE__ __TIME__
  7. *)
  8.  
  9. (*DEF_SWITCHES*)
  10.  
  11. FROM PORTAB IMPORT ANYBYTE,UNSIGNEDWORD,SIGNEDWORD;
  12. FROM RcMgr  IMPORT GRect,GPnt;
  13.  
  14. IMPORT AES;
  15.  
  16. #if export
  17. EXPORT QUALIFIED GrafRubberBox,GrafRubBox,GrafDragBox,GrafMoveBox,GrafMBox,
  18.                  GrafGrowBox,GrafShrinkBox,TreePtr,ObjectIndex,ObjectState,
  19.                  GrafWatchBox,SlideModes,GrafSlideBox,GrafHandle,
  20.                  Arrow,TextCrsr,BusyBee,Hourglass,Bee,PointHand,FlatHand,
  21.                  ThinCross,ThickCross,OutlnCross,MPush,MPop,UserDef,
  22.                  MOff,MOn,MouseColors,MForm,MFormPtr,GrafMouse,
  23.                  MouseButtons,MouseButton,SpecialKeys,SpecialKey,GrafMKState;
  24. #endif
  25.  
  26. (* [Graf]ics Manager: Do [Rub]ber] [Box], AES(70) **************************)
  27.  
  28. PROCEDURE GrafRubberBox(    StartPos   : GPnt;
  29.                             StartWidth : SIGNEDWORD;
  30.                             StartHeight: SIGNEDWORD;
  31.                         VAR LastWidth  : SIGNEDWORD;
  32.                         VAR LastHeight : SIGNEDWORD);
  33.  
  34. #if proc_const || ISOM2
  35. CONST GrafRubBox = GrafRubberBox;
  36. #else
  37. VAR GrafRubBox: PROCEDURE(GPnt,SIGNEDWORD,SIGNEDWORD,VAR SIGNEDWORD,VAR SIGNEDWORD);
  38. #endif
  39.  
  40. (* [Graf]ics Manager: [Drag] [Box], AES(71) ********************************)
  41.  
  42. PROCEDURE GrafDragBox(    StartWidth : SIGNEDWORD;
  43.                           StartHeight: SIGNEDWORD;
  44.                           StartX     : SIGNEDWORD;
  45.                           StartY     : SIGNEDWORD;
  46.                       VAR Bound      : GRect;
  47.                       VAR NewPos     : GPnt);
  48.  
  49. (* [Graf]ics Manager: [M]ove] [Box], AES(72) *******************************)
  50.  
  51. PROCEDURE GrafMoveBox(StartWidth : UNSIGNEDWORD;
  52.                       StartHeight: UNSIGNEDWORD;
  53.                       StartPos   : GPnt;
  54.                       EndPos     : GPnt);
  55.  
  56. #if proc_const || ISOM2
  57. CONST GrafMBox = GrafMoveBox;
  58. #else
  59. VAR GrafMBox: PROCEDURE(UNSIGNEDWORD,UNSIGNEDWORD,GPnt,GPnt);
  60. #endif
  61.  
  62. (* [Graf]ics Manager: Draw [Grow]ing [Box], AES(73) ************************)
  63.  
  64. PROCEDURE GrafGrowBox(VAR From: GRect;
  65.                       VAR To  : GRect);
  66.  
  67. (* [Graf]ics Manager: Draw [Shrink]ing [Box], AES(74) **********************)
  68.  
  69. PROCEDURE GrafShrinkBox(VAR From: GRect;
  70.                         VAR To  : GRect);
  71.  
  72. (* [Graf]ics Manager: [Watch] [Box], AES(75) *******************************)
  73.  
  74. TYPE TreePtr = AES.TreePtr;
  75.  
  76.      ObjectIndex = AES.ObjectIndex;
  77.  
  78.      ObjectState = AES.ObjectState;
  79.  
  80. PROCEDURE GrafWatchBox(PTree   : TreePtr;
  81.                        Ob      : ObjectIndex;
  82.                        Instate : ObjectState;
  83.                        Outstate: ObjectState): BOOLEAN;
  84.  
  85. (* [Graf]ics Manager: [Slide] [Box], AES(76) *******************************)
  86.  
  87. TYPE SlideModes = (Horizontal,Vertical);
  88.  
  89. PROCEDURE GrafSlideBox(PTree : TreePtr;
  90.                        Parent: ObjectIndex;
  91.                        Ob    : ObjectIndex;
  92.                        IsVert: SlideModes): UNSIGNEDWORD;
  93.  
  94. (* [Graf]ics Manager: Get [Handle] And System Sizes, AES(77) ***************)
  95.  
  96. PROCEDURE GrafHandle(VAR WChar: UNSIGNEDWORD;
  97.                      VAR HChar: UNSIGNEDWORD;
  98.                      VAR WBox : UNSIGNEDWORD;
  99.                      VAR HBox : UNSIGNEDWORD): UNSIGNEDWORD;
  100.  
  101. (* [Graf]ics Manager: Show [Mouse] Form, AES(78) ***************************)
  102.  
  103. CONST Arrow      = 0;
  104.       TextCrsr   = 1;
  105.       BusyBee    = 2; Hourglass = 2; Bee = 2; (* alias *)
  106.       PointHand  = 3;
  107.       FlatHand   = 4;
  108.       ThinCross  = 5;
  109.       ThickCross = 6;
  110.       OutlnCross = 7;
  111.  
  112.       MPush      = 100;
  113.       MPop       = 101;
  114.  
  115.       UserDef    = 255;
  116.  
  117.       MOff       = 256; (* [M]ouse [Off] *)
  118.       MOn        = 257; (* [M]ouse [On]  *)
  119.  
  120.       MSave      = 258;
  121.       MRestore   = 259;
  122.       MLast      = 260;
  123.  
  124. TYPE MouseColors = AES.ObjectColors;
  125.  
  126.      MForm = RECORD
  127.                MFXHot   : UNSIGNEDWORD;
  128.                MFYHot   : UNSIGNEDWORD;
  129.                MFNPlanes: UNSIGNEDWORD;
  130. #if linear
  131. #if fill_byte
  132.                FillByte1: ANYBYTE;
  133. #endif
  134. #endif
  135.                MFFG     : MouseColors;
  136. #if intel
  137. #if fill_byte
  138.                FillByte1: ANYBYTE;
  139. #endif
  140. #endif
  141. #if linear
  142. #if fill_byte
  143.                FillByte2: ANYBYTE;
  144. #endif
  145. #endif
  146.                MFBG     : MouseColors;
  147. #if intel
  148. #if fill_byte
  149.                FillByte2: ANYBYTE;
  150. #endif
  151. #endif
  152.                MFMask   : ARRAY[0..15] OF SIGNEDWORD;
  153.                MFData   : ARRAY[0..15] OF SIGNEDWORD;
  154.              END;
  155.      MFormPtr = POINTER TO MForm;
  156.  
  157. PROCEDURE GrafMouse(MouseNum : UNSIGNEDWORD;
  158.                     MouseForm: MFormPtr); (* pointer for dynamic mice *)
  159.  
  160. (* [Graf]ics Manager: Get [M]ouse And [K]eyBoard [State], AES(79) **********)
  161.  
  162. #ifdef FTLM2
  163. TYPE MouseButtons = AES.MouseButtons;
  164. #else
  165. CONST MBLeft = AES.MBLeft;
  166.       MBRight = AES.MBRight;
  167. #endif
  168.  
  169. TYPE MouseButton = AES.MouseButton;
  170.  
  171. #ifdef FTLM2
  172. TYPE SpecialKeys = AES.SpecialKeys;
  173. #else
  174. CONST KRShift = AES.KRShift;
  175.       KLShift = AES.KLShift;
  176.       KCtrl = AES.KCtrl;
  177.       KAlt = AES.KAlt;
  178. #endif
  179.  
  180. TYPE SpecialKey = AES.SpecialKey;
  181.  
  182. PROCEDURE GrafMKState(VAR MXY   : GPnt;
  183.                       VAR MState: MouseButton;
  184.                       VAR KState: SpecialKey);
  185.  
  186. END GrafMgr.
  187.